package com.leetcode.practice.quesions;

import com.leetcode.practice.interfaces.IQuestion;

/**
 * 判断一个整数是否是回文数。回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。

	示例 1:

	输入: 121
	输出: true
	示例 2:

	输入: -121
	输出: false
	解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
	示例 3:

	输入: 10
	输出: false
	解释: 从右向左读, 为 01 。因此它不是一个回文数。

	来源：力扣（LeetCode）
	链接：https://leetcode-cn.com/problems/palindrome-number
	著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

 * @author Administrator
 *
 */
public class q6_回文数 implements IQuestion {

	int n=5;

	@Override
	public void solution() {
		// TODO Auto-generated method stub
		solution1();
	}

	/**
	 * 時間複雜度：O(log10 n)
	 * 空間複雜度：O(1)
	 */
	private void solution1() {
		boolean b=false;
		if(n<0) b=false;
		else {
			String s=String.valueOf(n);
			System.out.println("s->"+s);
			int center=s.length()/2;
			if(expandCenter(s,center,center)||expandCenter(s,center-1,center)){
				System.out.println(n+"是回文");
			}else {
				System.out.println(n+"不是回文");
			}
		}
	}
	
	private boolean expandCenter(String s,int l,int r){
		while(l>=0 && r<s.length() && s.charAt(l)==s.charAt(r)) {
			l--;
			r++;
		}
		if(l==-1) {
			return true;
		}else {
			return false;
		}
	}

	public static void main(String[] args) {
		q6_回文数 q6=new q6_回文数();
		q6.solution();
	}


}
